﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Ferhrosa.Dados;

namespace MecSom.Dados
{
    public class Cliente : Entidade
    {

        public int? CodCliente { get; set; }
        public DateTime DataInclusao { get; set; }
        public string Nome { get; set; }
        public string Telefone1 { get; set; }
        public string Telefone2 { get; set; }
        public string Telefone3 { get; set; }
        public string Contato { get; set; }
        public string Telefone4 { get; set; }
        public string Telefone5 { get; set; }
        public string Telefone6 { get; set; }


        public static List<Cliente> Carregar(int? numero, DateTime? data, string nome, string telefone, bool? contato, string tipo, string marca, string modelo, string situacao)
        {
            using ( var procedure = new StoredProcedure("CarregarCliente") )
            {
                procedure.DefinirParametro("@numero", numero);
                procedure.DefinirParametro("@data", data);
                procedure.DefinirParametro("@nome", nome);
                procedure.DefinirParametro("@telefone", telefone);
                procedure.DefinirParametro("@contato", contato);
                procedure.DefinirParametro("@tipo", tipo);
                procedure.DefinirParametro("@marca", marca);
                procedure.DefinirParametro("@modelo", modelo);
                procedure.DefinirParametro("@situacao", situacao);

                return procedure.CarregarListaRegistros<Cliente>();
            }
        }

        public void Salvar()
        {
            using ( var procedure = new StoredProcedure("SalvarCliente") )
            {
                procedure.DefinirParametro("@codCliente", this.CodCliente);
                procedure.DefinirParametro("@nome", this.Nome);
                procedure.DefinirParametro("@telefone1", this.Telefone1);
                procedure.DefinirParametro("@telefone2", this.Telefone2);
                procedure.DefinirParametro("@telefone3", this.Telefone3);
                procedure.DefinirParametro("@contato", this.Contato);
                procedure.DefinirParametro("@telefone4", this.Telefone4);
                procedure.DefinirParametro("@telefone5", this.Telefone5);
                procedure.DefinirParametro("@telefone6", this.Telefone6);

                this.CodCliente = procedure.CarregarUmRegistro<Cliente>().CodCliente;
            }
        }

        public void Remover()
        {
            using ( var procedure = new StoredProcedure("RemoverCliente") )
            {
                procedure.DefinirParametro("@codCliente", this.CodCliente);

                procedure.Executar();
            }
        }
    }
}
